10.2 モジュールとgo.modファイル
Goソースコードのディレクトリツリーは、有効なgo.modファイルがある場合にモジュールになる
go mod init モジュールパスでgo.modファイルを作成しモジュールに関する情報を管理する
モジュールパスはモジュールを識別するグローバルに一意な名前で、大文字・小文字が区別されるので混乱を避けるために大文字を使わない
モジュールパスはあくまでプロジェクトの識別に使うものなので、最初に「仮の値」を設定しておいて後で変更することもできる
変更する際はgo mod edit -module=変更したいモジュールパスを実行しgo mod tidyを実行する
go.modファイルではdirectiveを使用しモジュールに関する情報を指定する
module directive(1行目)ではmoduleに続いて一意のモジュールパスが書かれる
go directive(3行目)では最小の互換バージョンを指定する
モジュール内の全てのソースコードは、ここに指定されたバージョンと互換である必要がある
code:go
module github.com/learning-go-book-2e/money // module directive
go 1.24.3 // go directive
require (
github.com/learning-go-book-2e/formatter v0.0.0-20220918024742-1835a89362c9
github.com/shopspring/decimal v1.4.0
)
require (
github.com/fatih/color v1.13.0 // indirect
github.com/mattn/go-colorable v0.1.9 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
golang.org/x/sys v0.33.0 // indirect
)